﻿<%@ page contentType="text/html; charset=utf-8" %>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<%@taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
<c:set var="basePath" value="${pageContext.request.contextPath}"/>
<!DOCTYPE HTML>
<html lang="zh-cn">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>培训信息管理</title>
    <jsp:include page="/resources/inc/head.jsp" />
</head>
<body>
<div id="main">
    <div class="search-parent">
        <div class="search-child">
            <label for="beginDate-div">开始时间:</label>
            <div class="search custom-search" id="beginDate-div" style="width:200px;">
                <input class="form-control date-select" id="beginDate" type="text"
                       readonly="readonly" placeholder="请选择开始时间">
            </div>
            <label for="endDate-div">结束时间:</label>
            <div class="search custom-search" id="endDate-div" style="width:200px;">
                <input class="form-control date-select" id="endDate" type="text"
                       readonly="readonly" placeholder="请选择结束时间">
            </div>
        </div>
        <div class="btn btn-default" type="button" title="搜索" onclick="doSearch()">搜索</div>
        <div class="btn btn-default" type="button" title="重置" onclick="cleanSearch()">重置</div>
    </div>
    <div id="toolbar">
        <shiro:hasPermission name="oa:hr:train:create">
            <a class="waves-effect waves-button" href="javascript:;"
               onclick="Common.openPage({title:'新增培训',url:'${basePath}/oa/hr/train/create'})">
                <i class="zmdi zmdi-plus"></i>新增培训
            </a>
        </shiro:hasPermission>
        <shiro:hasPermission name="oa:hr:train:delete">
            <a class="waves-effect waves-button" href="javascript:;"
               onclick="cancelTrain()">
                <i class="zmdi zmdi-close"></i>取消培训</a>
        </shiro:hasPermission>
        <shiro:hasPermission name="oa:hr:train:update">
            <a class="waves-effect waves-button" href="javascript:;"
               onclick="recoveryTrain()">
                <i class="zmdi zmdi-refresh"></i>恢复培训</a>
        </shiro:hasPermission>
        <shiro:hasPermission name="oa:hr:train:delete">
            <a class="waves-effect waves-button" href="javascript:;"
               onclick="Common.batchDelete({url:'${basePath}/oa/hr/train/delete'})">
                <i class="zmdi zmdi-close"></i>删除培训</a>
        </shiro:hasPermission>
    </div>
    <table id="table"></table>
</div>
<jsp:include page="/resources/inc/footer.jsp" />
<script>
    var $table = $('#table');
    $(function () {
        $table.bootstrapTable({
            url: '${basePath}/oa/hr/train/list',
            height: getHeight(),
            striped: true,//隔行变色
            search: false,
            showRefresh: true,
            showColumns: true,//是否显示 内容列下拉框
            minimumCountColumns: 2,//当列数小于此值时，将隐藏内容列下拉框
            clickToSelect: true,//设置true 将在点击行时，自动选择rediobox 和 checkbox
            detailView: true,//设置为 true 可以显示详细页面模式。
            detailFormatter: 'detailFormatter',//格式化详细页面模式的视图。
            pagination: true,//设置为 true 会在表格底部显示分页条
            paginationLoop: false,//设置为 true 启用分页条无限循环的功能。
            sidePagination: 'server',
            silentSort: false,//设置为 false 将在点击分页按钮时，自动记住排序项。仅在 sidePagination设置为 server时生效.
            smartDisplay: false,//True to display pagination or card view smartly.
            queryParamsType: "",
            escape: true,//转义HTML字符串，替换 &, <, >, ", `, 和 ' 字符.
            searchOnEnterKey: true,//设置为 true时，按回车触发搜索方法，否则自动触发搜索方法
            idField: 'id',//指定主键列
            maintainSelected: true,//设置为 true 在点击分页按钮或搜索按钮时，将记住checkbox的选择项
            toolbar: '#toolbar',
            queryParams: function (params) {
                params.beginDate = $("#beginDate").val();
                params.endDate = $("#endDate").val();
                return params;
            },
            columns: [
                {field: 'ck', checkbox: true},
                {field: 'trainName', title: '培训名称', align: 'center'},
                {field: 'trainPlace', title: '培训地点', align: 'center'},
                {field: 'state', title: '状态', align: 'center'},
                {field: 'beginTime', title: '开始时间', align: 'center', sortable: true, formatter: 'timeFormatter'},
                {
                    field: 'action',
                    title: '操作',
                    align: 'center',
                    formatter: 'actionFormatter',
                    events: 'actionEvents',
                    clickToSelect: false
                }
            ]
        });
        layui.use('laydate', function () {
            laydate = layui.laydate;
            $(".date-select").each(function (index, input) {
                laydate.render({
                    elem: this //指定元素
                    , theme: '#393D49'
                    , type: 'datetime'
                });
            });
        });
    });
    var updateData = {
        title: "编辑会议",
        url: "${basePath}/oa/hr/train/update"
    };
    var updateTrainUsersData = {
        title: "编辑培训人员",
        url: "${basePath}/oa/hr/train/updateTrainUsers",
        icon: "plus-sign"
    };
    var updateSummaryData = {
        title: "编辑培训纪要",
        url: "${basePath}/oa/hr/train/updateSummary",
        icon: "file",
        length:"55%"
    };
    var deleteData = {
        url: "${basePath}/oa/hr/train/delete"
    };
    function actionFormatter(value, row, index) {
        var html = "";
        var param = Common.getParam({id: row.id});
        updateData.param = param;
        updateTrainUsersData.param = param;
        updateSummaryData.param = param;
        deleteData.id = row.id;
        <shiro:hasPermission name="oa:hr:train:update">
        html += getPageHtml(updateData) + "  ";
        html += getPageHtml(updateTrainUsersData) + "  ";
        html += getPageHtml(updateSummaryData) + "  ";
        </shiro:hasPermission>
        <shiro:hasPermission name="oa:hr:train:delete">
        html += getDeleteHtml(deleteData) + "  ";
        </shiro:hasPermission>
        return html;
    }
    function doSearch() {
        var beginDate = $("#beginDate").val();
        var endDate = $("#endDate").val();
        var begin = new Date(beginDate);
        var end = new Date(endDate);
        if (begin >= end) {
            layer.msg('开始时间不能再结束时间之后！！', {icon: 5});
            return;
        }
        var opt = {
            url: "${basePath}/oa/hr/train/list",
            silent: true,
            query: {
                beginDate: beginDate,
                endDate: endDate,
            }
        };
        $table.bootstrapTable("refresh", opt);
    }
    function cleanSearch() {
        $("#beginDate").val("");
        $("#endDate").val("");
        $table.bootstrapTable("refresh");
    }
    function cancelTrain() {
        var rows = $table.bootstrapTable('getSelections');
        if (rows.length == 0) {
            layer.msg('请至少选择一条记录！', {icon: 5});
        } else {
            layer.confirm('确定取消会议么？', {
                btn: ['确定', '取消'] //按钮
            }, function () {
                var url = "${basePath}/oa/hr/train/cancelTrain";
                var ids = new Array();
                for (var i in rows) {
                    ids.push(rows[i].id);
                }
                if (url.charAt(url.length - 1) == "/") {
                    url = url + ids.join("-");
                } else {
                    url = url + "/" + ids.join("-");
                }
                $.ajax({
                    type: 'get',
                    url: url,
                    success: function (res) {
                        if (res.code != 1) {
                            if (typeof(res.data) != "undefined" && res.data.length > 0) {
                                layer.msg(res.data, {icon: 5});
                            } else {
                                layer.msg(res.message, {icon: 5});
                            }
                        } else {
                            layer.msg('操作成功！', {icon: 1});
                            $table.bootstrapTable('refresh');
                        }
                    },
                    error: function (res) {
                        layer.msg('操作失败！', {icon: 5});
                    }
                });

            }, function () {

            });
        }
    }
    function recoveryTrain() {
        var rows = $table.bootstrapTable('getSelections');
        if (rows.length == 0) {
            layer.msg('请至少选择一条记录！', {icon: 5});
        } else {
            layer.confirm('确定恢复会议么？', {
                btn: ['确定', '取消'] //按钮
            }, function () {
                var url = "${basePath}/oa/hr/train/recoveryTrain";
                var ids = new Array();
                for (var i in rows) {
                    ids.push(rows[i].id);
                }
                if (url.charAt(url.length - 1) == "/") {
                    url = url + ids.join("-");
                } else {
                    url = url + "/" + ids.join("-");
                }
                $.ajax({
                    type: 'get',
                    url: url,
                    success: function (res) {
                        if (res.code != 1) {
                            if (typeof(res.data) != "undefined" && res.data.length > 0) {
                                layer.msg(res.data, {icon: 5});
                            } else {
                                layer.msg(res.message, {icon: 5});
                            }
                        } else {
                            layer.msg('操作成功！', {icon: 1});
                            $table.bootstrapTable('refresh');
                        }
                    },
                    error: function (res) {
                        layer.msg('操作失败！', {icon: 5});
                    }
                });

            }, function () {

            });
        }
    }
</script>
</body>
</html>